User interface and method of adapting a sensor signal to actuate multiple dimensions

ABSTRACT

A user interface for a mobile device includes an input sensor having one degree of freedom operable by the user to generate a sensor signal, a screen having a two-dimensional surface showing a graphical user interface object, a processor coupled to the sensor and to the screen to actuate the graphical user interface object along the two actuated axis, and a sensor adapter software module executed by the processor to adapt the sensor signal to actuate the graphical user interface object along both actuated axis. The adapter software module selectively drives the sensor signal to actuate the graphical user interface object along the first actuated axis, to actuate the graphical user interface object along the second actuated axis, and to change actuated axis.

BACKGROUND

[0001] 1. Field of Technology

[0002] This application relates generally to user interfaces forelectronic devices having a thumbwheel, rollerwheel, or other inputsensor used for actuating a cursor display, or other type of displayedobject. More particularly, a method of adapting a sensor signal toactuate multiple dimensions for controlling a cursor in two dimensionsis provided by operating an input sensor having only one degree offreedom. The technology is particularly well-suited for use in PersonalDigital Assistants (PDAs), mobile communication devices, cellularphones, and wireless two-way communication devices (collectivelyreferred to herein as “mobile devices”). The technology providesutility, however, in any device that would benefit from adapting asensor signal to actuate multiple dimensions.

[0003] 2. Description of the Related Art

[0004] In known device user interfaces, when a user imparts motion to aninput sensor, such as a roller, having one degree of freedom, a cursoris actuated along a first dimension axis such as an up-down axis on thedisplay. In order for the user to actuate the cursor along a seconddimension axis on the display, such as a left-right axis, a modifierkey, such as an alt key is usually depressed with one hand while theuser imparts motion to the roller with the other hand. The use of bothhands to actuate a displayed cursor in two dimensions may not be anacceptable solution for a device that needs to be used with only onehand, such as a mobile device.

SUMMARY

[0005] A method of adapting a sensor signal to actuate a displayedobject, such as a cursor, situated in multiple dimensions in response touser stimulus of a sensor is provided. The method includes the steps of:(a) determining a magnitude from the sensor signal, the magnitude havinga positive value for a signal corresponding to a first pre-determineduser stimulus of the sensor and a negative value for a signalcorresponding to a second pre-determined user stimulus; (b) defining anactuated axis originating at the object position, the axis having adirection spanning at least one of the multiple dimensions; (c)actuating the object along the actuated axis in proportion to themagnitude; and (d) changing the direction of the actuated axis upondetection of a trigger corresponding to a third pre-determined userstimulus.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is a block diagram illustrating a device user interfacehaving a roller sensor with one degree of freedom connected to aprocessor that executes instructions in a sensor adapter software moduleto actuate two dimensions of a cursor displayed on a screen;

[0007]FIG. 2 is a state machine diagram illustrating a first embodimentof a method of adapting the sensor signal of the roller sensor of FIG. 1to actuate the two dimensions of the cursor of FIG. 1;

[0008]FIG. 3 is a state machine diagram illustrating a second embodimentof a method of adapting the sensor signal of the roller sensor of FIG. 1to actuate the two dimensions of the cursor of FIG. 1; and

[0009]FIG. 4 is a state machine diagram illustrating a third embodimentof a method of adapting the sensor signal of the roller sensor of FIG. 1to actuate the two dimensions of the cursor of FIG. 1.

DETAILED DESCRIPTION OF THE DRAWINGS

[0010] Referring now to the drawing, FIG. 1 is a block diagramillustrating a device user interface having a roller sensor with onedegree of freedom connected to a processor that executes instructions ina sensor adapter software module to actuate two dimensions of a cursordisplayed on a screen. User interface 10 includes a sensor 12 having onedegree of freedom, which is operable by the user to generate a sensorsignal by the user rolling the input sensor in either a clockwise (CW)direction or a counter-clockwise (CC) direction. Roller sensor 12 isconnected to processor 16, and transmits signals 14 to the processor 16whenever a user roll is sensed. When signaled 14, processor 16 executesinstructions 18 provided by sensor adapter software module 20 to adaptthe one dimensional signal 14 into two-dimensional signals accessible toprocessor 16. Processor 16 uses the adapted two-dimensional signals whenexecuting instructions 20 provided by a UI software module 22. UIsoftware module 22 provides instructions for processor 16 to control 24screen 26.

[0011] Processor 16 is also coupled to screen 26, which provides atwo-dimensional display surface showing a cursor object 28 to beactuated along a first actuated axis 30 corresponding to a firstdimension and a second actuated axis 32 corresponding to a seconddimension. Processor 16 adapts the sensor signal 14 using sensor adaptersoftware module 20, and actuates 24 a cursor 28 to be displaced in twodimensions using UI software module 22, along the up-down axis 30 andalong the left-right axis 32. Thus, when the user imparts motion ontothe roller of roller sensor 12 in either the CW or CC direction,advantageously an actuation of cursor 28 can take place in either theup, down, left, or right direction. The two directions corresponding tothe one dimension of sensor 12, as well as the two dimensions of cursor28, are provided only as one example and are not meant to limit thescope of the invention, which can operate generally to increase thenumber of dimensions actuated by a sensor.

[0012] Processor 16 optionally has a display, such as a state icon 34,to indicate the state of sensor adapter software module 20, or forexample to indicate which axis or direction would be actuated by themotion of the roller.

[0013] If not used with all applications of the user interface 10, theUI software module 22 and sensor adapter software module 20 are re-usedby processor 16 whenever it executes at least one application softwaremodule 42, in which case the cursor object 28 can take on various formsdepending on the nature of application software module 42, such as acaret in a text editor component, a scroll bar in a UI element which islarger than the screen 26, a pointer, etc.

[0014] If user interface 10 provides for a second signal 43 to begenerated with the same hand with which roller sensor 12 is operated,such as by depressing an adjacent key 44 situated with sufficientproximity to roller sensor 12, sensor adapter software module 20 can beconfigured to directly select which axis 30 or 32 will be actuated byroller sensor 12 in applications where the adjacent key 44 has no otherfunction associated with it. Because this is the simplest embodiment ofthe method, it will be described first in reference to FIG. 2. In thegeneral case where optional adjacent key 44 is not available or notpresent, however, it is preferred that sensor adapter software module 20determine the axis 30 or 32 that is to be actuated based solely on thesignal 14 of roller sensor 12.

[0015]FIG. 2 is a state machine diagram illustrating a first embodimentof a method of adapting the sensor signal 14 of the roller sensor 12 ofFIG. 1 to actuate the two dimensions of the cursor 28. The state machineof FIG. 2, which is implemented by the software instructions provided bythe sensor adopter software Module 20, includes two axis-states, anup-down axis-state 45, and a left-right axis-state 46, each containing astate machine for actuating the cursor 28 of FIG. 1 according to up-downaxis 30 and left-right axis 32, respectively. Transitions 47, 48 fromone axis-state 45, 46 to another 46, 45, respectively, occur based onthe adjacent key 44 signal 43 of FIG. 1. Each axis-state 45, 46 in turnoperates a state machine based solely on the one-dimensional rollersignal 14.

[0016] The state machine of the up-down axis-state 45 has two states,up-state 50 and down-state 52, each representing opposite directions ofaxis 30 in FIG. 1.

[0017] A first step in the method includes tracking an actuated axis.The actuated axis changes upon the detection of a condition. In the caseof the embodiment of FIG. 2, the condition is dependent on the adjacentkey 44 signals 43 of FIG. 1.

[0018] A second step in the method includes tracking a current state.The current state changes upon the detection of a signal from rollersensor 12 of FIG. 1. Upon detection of a CW signal 54 or 56 caused byrotation of roller sensor 12, the current state becomes the down-state52. Similarly, upon detection of a CC signal 58 or 60 caused by rotationof roller sensor 12, the current state becomes the upstate 50.

[0019] A third step in the method includes actuating the cursor 28 as afunction of the current state and the amount of rotation of rollersensor 12. Preferably, upon every transition to either the up-state 50or down-state 52, the cursor 28 is actuated in the direction of thecurrent state in proportion to the amount of rotation of sensor 12.

[0020] The state machine of left-right axis-state 46 has two states,right-state 62 and down-state 64, each representing opposite directionsof axis 32 in FIG. 1.

[0021] Tracking a current state includes the same second step in themethod described in reference to up-down axis-state 45. The currentstate changes upon the detection of a signal from roller sensor 12. Upondetection of a CW signal 66 or 68 caused by rotation of roller sensor12, the current state becomes the right-state 62. Similarly, upondetection of a CC signal 70 or 72 caused by rotation of roller sensor12, the current state becomes the left-state 50.

[0022] The same third step in the method described in reference to theup-down axis-state 45 above is pursued by actuating the cursor 28 as afunction of the current state and the amount of rotation of rollersensor 12. Preferably, upon every transition to either of theright-state 62 or down-state 64, the cursor 28 is actuated in thedirection of the current state in proportion to the amount of rotationof sensor 12.

[0023]FIG. 3 is a state machine diagram illustrating a second embodimentof a method of adapting the sensor signal 14 of the roller sensor 12 ofFIG. 1 to actuate the two dimensions of the cursor 28.

[0024] The state machine of FIG. 3 changes the condition for tracking anactuated axis so that adjacent key signal 43 and adjacent key 44 are notnecessary. The state machine combines the up-state 50 and down-state 52of FIG. 2 for actuating along the up-down axis 30 of FIG. 1 with theright state 62 and left state 64 of FIG. 2 for actuating along theleft-right axis 32 of FIG. 1.

[0025] Introducing two neutral states, the up-down neutral state 80 andthe left-right neutral state 82, couples the two up-down axis states 50and 52 of FIG. 2 with the two right-left axis states 62 and 72 of FIG.2. Neutral states, such as 80 and 82, differ from direction states, suchas 50, 52, 62 and 64, in that they do not cause the cursor 28 of FIG. 1to be actuated when they become the current state. In this regard, axisstates 45, 46 of FIG. 2 are also neutral states. Whenever the currentstate is a direction state, 50, 52, 62, 64, upon a change of directionof roller sensor 12, a neutral state 80 or 82 is entered.

[0026] If the current state is right 62 or left 64, continued rotationin the CW direction 68 and CC direction 72, respectively, will actuatecursor 28 of FIG. 1 along the right-left direction 32 of FIG. 1. CCrotation 84 or CW rotation 86 from a right-current state 62 or aleft-current state 64, however, causes a transition to the up-downneutral state 80, which becomes current. Because up-down neutral state80 is neutral, no actuation of cursor 28 occurs upon entering state 80.The next rotation of roller sensor 12 of FIG. 1, either CC 80 or CW 90,then causes either the up-state 50 or the down-state 90 to becomecurrent, respectively, thereby actuating cursor 28 along the up-downaxis 30 of FIG. 1.

[0027] In an analogous manner, if the current state is up 50 or down 52,continued rotation in the CC direction 60 and CW direction 56,respectively, will actuate cursor 28 of FIG. 1 along the up-downdirection 30 of FIG. 1. CW rotation 94 or CC rotation 84 from the upcurrent state 50 or the down current state 52, however, causes atransition to the left-right neutral state 82, which becomes current.Because the left-right neutral state 80 is neutral, no actuation ofcursor 28 of FIG. 1 occurs upon entering state 82. The next rotation ofroller sensor 12 of FIG. 1, either CC 96 or CW 98, then causes eitherthe left state 64 or the right state 62 to become current, therebyactuating cursor 28 along the left-right axis 32 of FIG. 1.

[0028] Thus, in comparison to the method of FIG. 2, the method of FIG. 3introduces a new condition for the first step, which includes detectinga change of direction, and upon detection of the change of direction,using the state machine of FIG. 3 to thereby cause a change in theactuated axis.

[0029]FIG. 4 is a state machine diagram illustrating a third embodimentof a method of adapting the sensor signal 14 of the roller sensor 12 toactuate the two dimensions of the cursor of FIG. 1. The state machine ofFIG. 4 improves upon the state machine of FIG. 3 by adding fouradditional neutral states, one per cursor direction, in addition toup-down neutral state 80 and left-right neutral state 82. The fouradditional neutral states are the down-neutral state 104, up-neutralstate 106, right-neutral state 124 and left-neutral state 126. The fouradditional neutral states include common timeout transitions 116, 118,136 and 138, in addition to CC and CW transitions. The introduction oftimeout transitions enables quick reversal of direction along an axis.

[0030] Operationally, from an up-state 50 or a down-state 52, continuedCC rotation 60 or CW rotation 56 of roller sensor 12 causes the upwardor downward actuation respectively along the up-down axis 30 of cursor28 of FIG. 1, as was the case in FIG. 2 and FIG. 3. Reversing thedirection of rotation CW 100 or CC 102, however, causes the currentstate to become the down-neutral state 104 or the up-neutral state 106,respectively. Because the down-neutral state 104 and up neutral state106 are neutral, no actuation of cursor 28 of FIG. 1 occurs. If the userdoes not impart motion onto the roller of roller sensor 12 in FIG. 1before timeout 116 or 118 occurs, however, the current state transitionsfrom down-neutral state 104 or up-neutral state 106 to left-rightneutral state 82. This ensures that from up-state 50 and down-state 52,it is possible to put the user interface in a left state 64 or a rightstate 62. Furthermore, if the user continues to roll the roller sensor12 in FIG. 1 in the new direction CW 110 or CC 108, respectively, beforethe timeout 116 or 118 occurs, the reverse direction down-state 52 orup-state 50 is entered. And if the user reverses direction CC 112 or CW114 on roller sensor 12 in FIG. 1 before the timeout 116 or 118 occurs,then, the neutral state for the reverse direction up-neutral state 106or down-neutral state 104 is entered. This ensures that, in the eventthat a user actuates cursor 28 of FIG. 1 beyond a desired position alongaxis 30, it is possible to actuate the cursor 28 in the oppositedirection without having to first actuate the cursor along theleft-right axis 32.

[0031] Similarly, from a left state 64 or a right state 62, continued CCrotation 72 or CW rotation 68 of roller sensor 12 of FIG. 1 causes theleftward or rightward actuation respectively along the left-right axis32 of cursor 28 of FIG. 1, as was the case in FIG. 2 and FIG. 3.Reversing the direction of rotation CW 120 or CC 122, however, causesthe current state to become the right-neutral state 124 or theleft-neutral state 126, respectively. Because the right-neutral state124 and left-neutral state 126 are neutral, no actuation of cursor 28 ofFIG. 1 occurs. If the user does not impart motion onto the roller ofroller sensor 12 in FIG. 1 before timeout 138 or 136 occurs, however,the current state transitions from right-neutral state 124 or up-neutralstate 126, respectively, to up-down neutral state 80. This ensures thatfrom right state 62 and left state 64, it is possible to put the userinterface 10 of FIG. 1 in an up-state 50 or a down-state 52.Furthermore, if the user continues to roll the roller sensor 12 in FIG.1 in the new direction CW 128 or CC 126, respectively, before thetimeout 138 or 136 occurs, then the reverse direction right state 62 orleft state 64 is entered, respectively. And if the user reversesdirection CC 132 or CW 134 on roller sensor 12 in FIG. 1 before thetimeout 138 or 136 occurs, then the neutral-state for the reversedirection left-neutral state 126 or right-neutral state 124 is entered.This ensures that, in the event that a user actuates cursor 28 of FIG. 1beyond a desired position along axis 32, it is possible to actuate thecursor 28 in the opposite direction without having to first actuate thecursor along the up-down axis 32.

[0032] Thus, in comparison to the method of FIG. 3, the method of FIG. 4introduces yet another condition for detecting the change of actuatedaxis in the first step, which includes detecting a timeout condition,and upon detection of the timeout condition, using the state machine ofFIG. 4 to thereby cause a change in the actuated axis.

[0033] Having described in detail the preferred embodiments of thepresent invention, including the preferred methods of operation, it isto be understood that this operation could be carried out with differentelements and steps. These preferred embodiments are presented only byway of example and are not meant to limit the scope of the presentinvention. This written description may enable those skilled in the artto make and use other embodiments having alternative elements thatlikewise correspond to the elements of the invention.

I claim:
 1. A mobile device having a user interface operable by a user,comprising: a sensor having one degree of freedom operable in a firstdirection and operable in a second direction opposite to the firstdirection to generate a sensor signal; a display screen having a firstdimension and a second dimension showing a graphical user interfaceobject to be actuated along a first actuated axis corresponding to thefirst dimension and a second actuated axis corresponding to the seconddimension; a processor coupled to the sensor to receive the sensorsignal and coupled to the screen to select a selected actuated axis andto actuate the graphical user interface object along the selectedactuated axis for adapting the sensor signal to actuate the graphicaluser interface object along both actuated axis; wherein the graphicaluser interface object is actuated along the selected actuated axis inproportion to the sensor signal when the sensor is operated repeatedlyin one direction, and wherein the selected actuated axis changes to theother actuated axis when the sensor is operated temporarily in theopposite direction.
 2. The mobile device of claim 1, wherein the sensoris a roller-type sensor.
 3. The mobile device of claim 2, wherein theroller-type sensor is a thumbwheel.
 4. The mobile device of claim 2,further comprising an auxiliary input adjacent to the roller-type sensorand coupled to the processor to signal a change of actuated axis.
 5. Themobile device of claim 1, wherein the graphical user interface object isselected from the group consisting of a cursor, a scroll bar, a viewport, a sprite, an icon, graphics and text.
 6. The mobile device ofclaim 1, wherein the processor is a virtual machine.
 7. The mobiledevice of claim 1, wherein the processor processes Java byte-codeinstructions.
 8. The mobile device of claim 1, further comprising atleast one application software module executed by the processor.
 9. Themobile device of claim 8, wherein the at least one application softwaremodule includes a home application software module displaying at leastone icon to launch the remaining at least one application softwaremodule.
 10. The mobile device of claim 8, wherein the at least oneapplication software module includes a configuration applicationsoftware module for selectively enabling and disabling the adaptersoftware module.
 11. The mobile device of claim 10, wherein theconfiguration application software module utilizes the adapter softwaremodule.
 12. A mobile device having a user interface, comprising: asensor having one degree of freedom operable by a user to generate asensor signal; actuation means for two dimensions actionable along afirst dimension and actionable along a second dimension; a processorcoupled to the sensor to receive the sensor signal and coupled to theactuation means to drive the actuation means; and a sensor adaptersoftware module executed by the processor to adapt the sensor signal toselect an actuated axis within the two dimensions and to adapt thesensor signal to drive the actuation means along the actuated axis. 13.The user interface of claim 12, wherein the sensor is a roller-typesensor.
 14. The user interface of claim 13, wherein the roller-typesensor is a thumbwheel.
 15. The user interface of claim 13, furthercomprising an auxiliary input adjacent to the roller-type sensor andcoupled to the processor to signal a change of actuated axis to theadapter software module.
 16. The user interface of claim 12, wherein theobject is selected from the group consisting of a cursor, a scroll bar,a view port, a sprite, an icon, graphics and text.
 17. The userinterface of claim 12, wherein the processor is a virtual machine. 18.The user interface of claim 12, wherein the processor processes Javabyte-code instructions.
 19. The user interface of claim 12, wherein thesensor adapter software module is coupled to at least one applicationsoftware module executed by the processor.
 20. The user interface ofclaim 19, wherein the at least one application software module includesa home application software module displaying at least one icon tolaunch the remaining at least one application software module.
 21. Theuser interface of claim 19, wherein the at least one applicationsoftware module includes a configuration application software module forselectively enabling and disabling the adapter software module.
 22. Theuser interface of claim 21, wherein the configuration applicationsoftware module utilizes the adapter software module.
 23. The userinterface of claim 12, further comprising a display to indicate thestate of the sensor adapter software module.
 24. A method of adapting asensor signal to actuate an object situated in multiple dimensions inresponse to user stimulus of a sensor, comprising the steps of: (a)determining a magnitude from the sensor signal, the magnitude having apositive value for a signal corresponding to a first predetermined userstimulus of the sensor and a negative value for a signal correspondingto a second pre-determined user stimulus; (b) defining an actuated axisoriginating at the object position, the axis having a direction spanningat least one of the multiple dimensions; (c) actuating the object alongthe actuated axis in proportion to the magnitude; and (d) changing thedirection of the actuated axis upon detection of a trigger correspondingto a third pre-determined user stimulus.
 25. The method of claim 24,wherein the sensor is a roller-type sensor.
 26. The method of claim 25,wherein the roller-type sensor is a thumbwheel.
 27. The method of claim25, further comprising the step of: (e) providing an auxiliary inputadjacent to the roller-type sensor and coupled to the processor tosignal a change of actuated axis to the adapter software module.
 28. Themethod of claim 24, wherein the object is selected from the groupconsisting of a cursor, a scroll bar, a view port, a sprite, an icon,graphics and text.
 29. The method of claim 24, further comprising thestep of: (e) providing a virtual machine processor to carry out steps ofthe method.
 30. The method of claim 29, wherein the processor processesJava byte-code instructions.
 31. The method of claim 24, furthercomprising the step of: (e) providing at least one application softwaremodule executed by the processor.
 32. The method of claim 31, whereinthe at least one application software module includes a home applicationsoftware module displaying at least one icon to launch the remaining atleast one application software module.
 33. The method of claim 31,wherein the at least one application software module includes aconfiguration application software module allowing the user toselectively enable and disable steps of the method.
 34. The method ofclaim 33, wherein the configuration application software module utilizesthe adapter software module.
 35. The method of claim 24, furthercomprising the step of: (e) providing an auxiliary input adjacent to thesensor to detect the third pre-determined user stimulus and cause thetrigger of step (d).
 36. The method of claim 24, further comprising thestep of: (e) detecting that the first pre-determined user stimulus isfollowed by the second pre-determined user stimulus to detect the thirdpre-determined user stimulus and cause the trigger of step (d).
 37. Themethod of claim 24, further comprising the step of: (e) detecting thatthe second pre-determined user stimulus is followed by the firstpre-determined user stimulus to detect the third pre-determined userstimulus and cause the trigger of step (d).
 38. The method of claim 24,further comprising the step of: (e) detecting that the magnitude haschanged sign to detect the third pre-determined user stimulus and causethe trigger of step (d).
 39. The method of claim 24, further comprisingthe step of: (e) upon detection of the trigger of step (d), setting themagnitude to zero for the purposes of step (c).
 40. The method of claim24, further comprising the step of: (e) detecting that first themagnitude has changed sign and second that the magnitude is equal tozero during a pre-determined time interval to detect the thirdpre-determined user stimulus and cause the trigger of step (d).
 41. Themethod of claim 24, further comprising the step of: (e) displaying astate icon to indicate the actuated axis that would be actuated by thefirst and second pre-determined user stimulus.